The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Sophisticated, modern DVRs are capable of scheduling the recordings of programs that are to be televised some time in the future. If a DVR user is interested in recording all episodes of a televised series, then the DVR user can instruct his DVR to get a “season pass” for that series. In response to such an instruction, the DVR automatically determines, from electronic programming guide (“EPG”) data, times at which episodes of that series are going to be televised in the future. Usually, whenever an episode of the selected series is about to be broadcasted, the DVR automatically tunes to the channel on which the episode is going to be broadcasted and records that episode on the DVR's hard disk drive. For as long as the recorded episode remains on the DVR's hard disk drive, the DVR's user can instruct the DVR to replay the episode to the user's television. Conveniently, this allows the DVR user to watch programs in which the user is interested at times other than those program's broadcasting times. The DVR user does not even need to know, beforehand, the exact times at which those programs are going to be broadcasted.
As used herein, a “program” is any content, visual and/or audible, that is presented through a television's display and/or speakers. For example, a program might be an episode of a multi-episode series, a movie, a sporting event, or a news presentation, although this is not an exclusive list of “programs.” When a DVR schedules a program for future recording, the DVR attempts to add the program to a “to do” list that the DVR maintains within the DVR's own storage mechanisms. Whenever a program on the DVR's “to do” list is broadcasted, the DVR automatically records that program.
Some DVRs allow a DVR user to search for specific programs in which the DVR user might be interested. For example, in response to a DVR user's search request, a DVR might present, to the DVR user, a user interface into which the DVR user can enter criteria that programs in which the DVR user is interested ought to satisfy. The user interface might contain different user-fillable fields for different types of criteria that programs could satisfy. For example, a user interface might contain a “title” field, one or more “actors” fields, a “category” and/or “genre” field, a “year” field, a “rating” field, etc. After receiving the user-specified criteria through such a user interface, the DVR searches program metadata that the DVR obtained from the EPG data provider. Typically, the EPG-provided program metadata will indicate, for each program, the kinds of information (e.g., title, actors, category, genre, year, rating, etc.) for which the user entered criteria. The DVR determines, based on the EPG-provided program metadata, a set of to-be-broadcasted programs that are associated with program metadata that satisfies the user-specified criteria. The DVR then presents, to the DVR user, a list of to-be-broadcasted programs that are contained in the set.
For example, if a DVR user enters the word “Christopher” into an “actors” field in the user interface, but leaves the “title” field of the user interface blank, then the DVR may search EPG-provided metadata for all programs that have anyone named “Christopher” (as a first, last, or middle name) as an actor. In the EPG-provided metadata, different kinds of information are found in different metadata fields. The EPG-provided metadata for a particular program might contain multiple fields tagged with the “actor” identifier. A field tagged with the “actor” identifier is referred to as an “actor” field. Each such actor field may contain the name of an actor that appears in that program. The DVR may search EPG data for upcoming programs that are associated with metadata that contains an actor field that contains the word “Christopher.” After compiling a list of such programs, and removing any duplicate entries from the list, the DVR presents the list of programs to the DVR user. The DVR user can instruct the DVR to schedule recordings of selected programs from the list as the DVR user prefers.
Significantly, if the DVR user specifies “Christopher” as an actor, rather than a title, then the DVR will not search for “Christopher” in the title field, because doing so would probably yield search results in which the DVR user is not interested (many programs with “Christopher” in the title might not feature any actor named “Christopher”). Thus, in order to perform an accurate search that is likely to yield the results in which the DVR user is most interested, the DVR benefits from the fact that the EPG-provided metadata that the DVR searches contains information that has been classified into different types (e.g., “actor” metadata, “title” metadata, etc.).
Metadata obtained from an EPG data provider typically contains information about programs that are scheduled to be broadcast on various channels in the near future. However, some DVRs are also capable of obtaining and presenting programs that are not scheduled for broadcast (e.g., over the air or through cable) on any specific channel at any specific time. Some DVRs are capable of downloading (e.g., over a data network such as the Internet) and presenting program content to a DVR user at any time that the DVR user likes, even when that program content is not going to be broadcasted on any channel in the near future (or ever). Program content that a DVR user can request and view at any time, regardless of whether that content is scheduled for broadcast on a channel, is called “video-on-demand” (“VOD”) content. Unlike regular broadcasted content, VOD content typically is not presented to a DVR user or provided to a DVR until the DVR user or the DVR actually requests that VOD content. A DVR may (but does not necessarily need to) obtain or receive VOD content over a cable using the same tuner hardware that the DVR uses to obtain or receive content that is broadcasted over a channel in the more traditional manner. Thus, though VOD content and non-VOD content may be available via different distribution mechanisms, a DVR may obtain or receive VOD and non-VOD content through either the same or different interfaces.
Typically, VOD content is stored in digital form on an Internet-accessible server that some VOD service provider maintains. There may be many different VOD service providers, each with its own set of servers and each with a different set of VOD content stored on its set of servers. A particular DVR may be capable of obtaining VOD content from multiple different VOD service providers. In order to let a DVR and a DVR user know which VOD content a particular VOD service provider provides, the particular VOD service provider may store downloadable VOD metadata on the particular VOD service provider's servers. The VOD metadata may indicate various kinds of information about the VOD content that is accessible from the particular VOD service provider's servers.
A given DVR typically will only obtain program metadata from a single well-known and widely used EPG data provider. Due to this fact, the program metadata that the DVR obtains from the EPG data provider usually will conform to a DVR-expected format, regardless of the specific program to which the program metadata pertains. Usually, if the EPG-provided metadata for one program contains a particular set of fields (e.g., title, actors, category, genre, year, rating, etc.), then the EPG-provided metadata for each other program will also contain the particular set of fields (though the values of those fields will naturally vary from program to program). In other words, the “structure” of the EPG-provided metadata for each program typically will be uniform from program to program. A DVR is able to perform user-initiated program content searches with greater precision because of this structural uniformity in EPG-provided metadata. If the EPG-provided metadata were not so structurally uniform, then search results might be less precise. Referring to the example above, if the metadata associated with various programs did not contain separate “title” and “actor” fields, then the DVR would be unable to distinguish between programs that contained “Christopher” as an actor and programs that contained “Christopher” in the title when performing a search for programs that matched user-specified criteria.
As is stated above, a DVR might be capable of obtaining VOD content from diverse VOD content providers. The program metadata offered by these VOD content providers often will not have the same structure as the EPG-provided metadata; VOD content providers often feel little or no compulsion to conform the structure of their program metadata to the structure of anyone else's program metadata. The program metadata offered by one VOD content provider often will not have the same structure as the program metadata offered by another VOD content provider. Additionally, even if VOD metadata contains information such as title, actor, and genre (to name a few types of information), there is often no assurance that such information will be tagged specifically as a title, an actor, or a genre in the VOD metadata—the “type” of an information item (e.g., whether the information item is a title or an actor) in the VOD metadata is often difficult or impossible to determine from the VOD metadata alone. Although a DVR user might like to be able to search for VOD content in the same way that a DVR is able to search for regularly broadcasted content, the structural variance in VOD-provided metadata often stands as an obstacle in the way of a DVR that would otherwise permit a DVR user to search for VOD content in this manner.